﻿// <copyright file="Constant.cs" company="Lu Studio">
// Copyright (c) Lu Studio. All rights reserved.
// </copyright>
// <author>lu qi</author>
// <createTime>2021-06-19</createTime>

using System.Reflection;

namespace ElfKit.Common
{
    /// <summary>
    /// 常量.
    /// </summary>
    public static class Constant
    {
        /// <summary>
        /// 没有找到.
        /// </summary>
        public const int NotFound = -1;

        #region CultureNames

        /// <summary>
        /// 区域名称.
        /// </summary>
        public static class CultureNames
        {
            /// <summary>
            /// en-US.
            /// </summary>
            public const string EnUs = "en-US";

            /// <summary>
            /// zh-CN.
            /// </summary>
            public const string ZhCn = "zh-CN";
        }

        #endregion CultureNames

        #region Strings

        /// <summary>
        /// 字符串.
        /// </summary>
        public static class Strings
        {
            /// <summary>
            /// " ".
            /// </summary>
            public const string Space = " ";

            /// <summary>
            /// "|".
            /// </summary>
            public const string Pipe = "|";
        }

        #endregion CultureNames

        #region BindingAttributes

        /// <summary>
        /// <see cref="BindingFlags"/>常量.
        /// </summary>
        public static class BindingAttributes
        {
            /// <summary>
            /// 静态私有成员.
            /// </summary>
            public const BindingFlags StaticNonPublic = BindingFlags.NonPublic | BindingFlags.Static;

            /// <summary>
            /// 静态公开成员.
            /// </summary>
            public const BindingFlags StaticPublic = BindingFlags.Public | BindingFlags.Static;

            /// <summary>
            /// 静态成员.
            /// </summary>
            public const BindingFlags Static = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static;

            /// <summary>
            /// 实例公开成员.
            /// </summary>
            public const BindingFlags InstancePublic = BindingFlags.Public | BindingFlags.Instance;

            /// <summary>
            /// 实例私有成员.
            /// </summary>
            public const BindingFlags InstanceNonPublic = BindingFlags.NonPublic | BindingFlags.Instance;

            /// <summary>
            /// 实例成员.
            /// </summary>
            public const BindingFlags Instance = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance;

            /// <summary>
            /// 所有成员.
            /// </summary>
            public const BindingFlags All = BindingFlags.Static | BindingFlags.Instance;
        }

        #endregion

        #region CompareResult

        /// <summary>
        /// 比较结果.
        /// </summary>
        public static class CompareResult
        {
            /// <summary>
            /// 等于.
            /// </summary>
            public const int Equal = 0;

            /// <summary>
            /// 大于.
            /// </summary>
            public const int GreaterThan = 1;

            /// <summary>
            /// 小于.
            /// </summary>
            public const int LessThan = -1;
        }

        #endregion
    }
}